<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>
		<script src="frame/jquery-3.1.1.min.js"></script>
		<script type="text/javascript">
			/**
			 * var arr=[1,2,3,4];
			 * 
			 * push(arr);方法可向数组的末尾添加arr元素，并返回新的长度
			 * 
			 * 向数组的某个下标插入一个或多个元素；0代表不删除如果是3代表删除3个元素
			 * splice(index,0,item1, ..., itemX);方法用于插入、删除或替换数组的元素。
			 * 
			 * 0,-1表示提取第一个元素到最后一个元素的值；slice(0)表示全部元素
			 * slice(0,-1);方法可提取字符串的某个部分，并以新的字符串返回被提取的部分。
			 * 
			 * concat(arr);某个元素和arr---要连接的字符串
			 * 
			 * */

			//			找出元素item在数组中的位置
			indexof([1, 2, 3, 4, 5], 3);

			function indexof(arr, item) {
				for(var i = 0; i < arr.length; i++) {
					if(arr[i] == item) {
						console.log("indexOf————" + i);
						return i;
					}
				}
				return -1;
			}
			//			计算数组中元素的总和
			sum([1, 2, 3, 4, 5]);

			function sum(arr) {
				var sum = 0;
				for(var i = 0; i < arr.length; i++) {
					sum += arr[i];
				}
				console.log("sum————" + sum);
			}
			//			移除数组中和item一样的然后保存到新数组中
			remove([1, 2, 3, 4, 5], 3);

			function remove(arr, item) {
				var array = [];
				for(var i = 0; i < arr.length; i++) {
					if(arr[i] != item) {
						array.push(arr[i]);
					}
				}
				console.log("remove————" + array)
			}
			//			移除数组中和item一样的然后保存到原始数组中
			//        splice(i,1)splice添加/删除i表示位置，1表示几次
			newremove([1, 2, 3, 4, 3, 5], 3);

			function newremove(arr, item) {
				for(var i = 0; i < arr.length; i++) {
					if(arr[i] == item) {
						arr.splice(i, 1);
						i--;
					}
				}
				console.log("newremove————" + arr);
				return arr;
			}

			//			在数组 arr 末尾添加元素 item。不要直接修改数组 arr，结果返回新的数组 
			//         push添加元素
			append([1, 2, 3, 4, 5], 6);

			function append(arr, item) {
				var array = new Array();
				for(var i = 0; i < arr.length; i++) {
					array.push(arr[i]);
				}
				array.push(item);
				console.log("append————" + array);
				return array;
			}

			//			删除数组 arr 最后一个元素。不要直接修改数组 arr，结果返回新的数组 
			//			slice方法可从已有的数组中返回选定的元素0表示第几个开始-1表示最后一个结束-2表示倒数第二	
			removelast([1, 2, 3, 4, 5]);

			function removelast(arr) {
				console.log("removelast————" + arr.slice(0, -1));
				return arr.slice(0, -1);
			}

			//			在数组 arr 开头添加元素 item。不要直接修改数组 arr，结果返回新的数组
			//         concat() 方法用于将指定的字符串参数连接到字符串上。
			fristappend([2, 3, 4, 5], 1);

			function fristappend(arr, item) {
				var array = [item];
				console.log("fristappend————" + array.concat(arr));
				return array.concat(arr);
			}

			//          删除数组 arr 第一个元素。不要直接修改数组 arr，结果返回新的数组 
			removefrist([0, 1, 2, 3, 4, 5, 6]);

			function removefrist(arr) {
				console.log("removefrist————" + arr.slice(1, arr.length));
				return arr.slice(1, arr.length);
			}

			//合并数组 arr1 和数组 arr2。不要直接修改数组 arr，结果返回新的数组 
			contenarr([1, 2, 3, 4], ['a', 'b', 'c', 1]);

			function contenarr(arr1, arr2) {
				console.log("contenarr————" + [].concat(arr1).concat(arr2));
				return [].concat(arr1).concat(arr2);
			}

			//在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr，结果返回新的数组 
			insert([1, 2, 4, 5, 6, 7], "r", 2);

			function insert(arr, item, index) {
				var array = arr.slice(0);
				array.splice(index, 0, item);
				console.log("insert————" + array);
				return array;
			}

			//统计数组 arr 中值等于 item 的元素出现的次数 
			count([1, 2, 4, 4, 3, 4, 3], 4)

			function count(arr, item) {
				//var ct=[];
				var ct = 0;
				for(var i = 0; i < arr.length; i++) {
					if(arr[i] == item) {
						//ct.push(arr[i]);
						ct++;
					}
				}
				console.log("count————" + ct)
				return ct.length;
			}

			//找出数组 arr 中重复出现过的元素 sort()分类
			duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]);

			function duplicates(arr) {
				var array = arr.sort();
				var ar = [];
				for(var i = 0; i < arr.length; i++) {
					if(array[i] == array[i + 1] && array[i] != array[i - 1]) {
						ar.push(array[i]);
					}
				}
				console.log("duplicates————" + ar)
				return ar;
			}
			
			//为数组 arr 中的每个元素求二次方。不要直接修改数组 arr，结果返回新的数组 
			square([1, 2, 3, 4]);
			
			function square(arr) {
			    var array=[];
			    for(var i=0;i<arr.length;i++){
			        array[i]=arr[i]*arr[i];
			    }
			    console.log("square————" + array);
			}
			
			//在数组 arr 中，查找值与 item 相等的元素出现的所有位置
			findAllOccurrences('abcdefabc'.split(''), 'a').sort();
			
			function findAllOccurrences(arr, target) {
			    var array=[];
			    for(var i=0;i<arr.length;i++){
			        if(target==arr[i]){
			          array.push(i);
			        }
			    }
			    console.log("findAllOccurrences————" + array);
			    return array;
			}
			
			//判断 val1 和 val2 是否完全等同
			identity(3,4)
			function identity(val1, val2) {
			  console.log(val1===val2);
			  return val1===val2;
			}
		</script>
	</body>

</html>